Repository navigation
fix(dashboard): /courses and /settings read in a narrow window - #151
Open
UltimaPhoenix wants to merge 1 commit into
Open
UltimaPhoenix wants to merge 1 commit into
UltimaPhoenix wants to merge 1 commit into
Conversation
UltimaPhoenix
force-pushed
the
fix/dashboard-narrow-courses-settings
branch
from
November 8, 2026 19:15
2ec9629 to
26270f6
Compare
Below sm (640 px) the courses table cut every title ("From a cache miss to a…") and laid the
status badge over the date, and the settings form's paired fields (lessons per day + gap,
interactions + scope) cut their selects ("Per chat sessi…").
- /courses below sm is a list: each course is a block with the full title (no clamp) and its
lesson, then progress · status · updated on one line. From sm up it is the table, unchanged.
- /settings below sm stacks the paired fields one per row. From sm up, two per row as before.
Classes only, in views.ts. The nav is untouched: how Settings and the theme toggle fit a
narrow window is a separate decision.
tests/web.test.ts: the courses list carries its narrow layout (hidden header, wrapping rows,
unclamped title); settings has no fixed two-column row left.
UltimaPhoenix
force-pushed
the
fix/dashboard-narrow-courses-settings
branch
from
November 8, 2026 19:16
26270f6 to
12ad61d
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Below
sm(640 px) two dashboard pages could not be read:/courses: the four-column table cut every title ("From a cache miss to a…") and laid the status badge over the date./settings: the paired fields (lessons per day + gap, interactions + scope) sat two per row and cut their selects ("Per chat sessi…").Classes only, in
src/web/views.ts:/coursesbelowsmis a list (block sm:table,hidden sm:table-header-group, rowsflex flex-wrap … sm:table-row): each course is a block with the full title (no clamp) and its lesson, then progress · status · updated on one line. Fromsmup it is the table, unchanged./settingsbelowsmstacks the paired fields one per row (grid-cols-1 sm:grid-cols-2). Fromsmup, two per row as before.Before / after
Slideshow — each screen BEFORE (red band: without this PR), then AFTER (green band: with this PR), with one line saying what you see. It plays by itself; click it to open it full size.
/coursesis captured at 600 px, where the nav still fits on one row;/settingsat 420 px, where the select gets cut. At 420 px the nav is cut on both sides: that is the separate decision above.Dark
Side by side — BEFORE on the left, AFTER on the right.
/coursesat 600 px. Before: the titles are cut and "completed" sits over "September 20". After: one block per course, the full title and its lesson, then progress · status · updated.Dark
/settingsat 420 px. Before: two fields per row, the select reads "Per chat sessi" and the labels wrap. After: one field per row, every label and select whole.Dark
Captured with Playwright in real Chrome on two sandboxed dashboards restored from the screenshot fixture (never a real
~/.devcoach):developand this branch.Test plan
npm run lint && npm run typecheck && npm run test:cov: 386 tests pass; coverage 94.82 % lines · 93.57 % statements · 96.83 % functions · 84.21 % branches (thresholds 92 / 91 / 95 / 76).tests/theme.test.tspasses (no hex, noindigo-*).tests/web.test.ts:/coursescarries its narrow layout (hidden header, wrapping rows, title unclamped belowsm), and a course seeded from no lesson renders the same block without the “from …” line;/settingshas no fixed two-column row left./coursesat 600 px and/settingsat 420 px (above); both pages unchanged at 1200 px.🤖 Generated with Claude Code